package models;

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import play.data.validation.Required;
import play.db.jpa.Model;
import controllers.CustomCRUD;

@Entity
public class RegistroPeso extends Model {
    
	private static final long serialVersionUID = 7192868580760470782L;
	
	@ManyToOne
	private Paciente paciente;
	
	@Required(message="crud.help.required")
	private Double pesoActual;
    
    @Temporal(TemporalType.DATE)
    @Required(message="crud.help.required")
	private Date fechaActual;

	/* Redefinición de _save() para que antes de guardarlo le setee una objeto del modelo de dominio
	 * que no puede realizarse antes.
	 * Debido al initial-data se agrega un try para catchear la NullPointerExc que tira SecureSocial.getCurrentUser(),
	 * ya que al levantar la app no hay user logueado, por lo tanto deja que la propiedad en cuestión se configure desde el initial-data.yml
	 * @see play.db.jpa.JPABase#_save()
	 */
	public void _save(){
		Paciente paciente = null;
		try{
			paciente = (Paciente)CustomCRUD.getUsuarioLogueado();
			this.setPaciente(paciente);
			super._save();
		}catch(NullPointerException npe){
			super._save();
		}
	}
    
    public Paciente getPaciente() {
		return paciente;
	}

	public void setPaciente(Paciente paciente) {
		this.paciente = paciente;
	}

	public Double getPesoActual() {
		return pesoActual;
	}

	public void setPesoActual(Double pesoActual) {
		this.pesoActual = pesoActual;
	}

	public Date getFechaActual() {
		return fechaActual;
	}

	public void setFechaActual(Date fecha) {
		this.fechaActual = fecha;
	}
    
}
